#!/usr/bin/env bash
# Benchmark a command as a string and output results
# to a file with format:
#
# cmd <command run>
# time <time in seconds to finish>
# exit_status <exit status>
set -eu
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
# Command to benchmark
cmd="$1"
shift
# Where to append write results to. Default: /dev/null.
results_file="${1:-/dev/null}"
mkdir -p "$(dirname "$results_file")"
printf 'cmd ' >> "$results_file"
env time --append -f 'time %e' --output="$results_file" "${root_dir}/eeval" -a "$cmd" "$results_file"
printf "exit_status $?\n" >> "$results_file"
